package main

import (
	"fmt"
	"os"

	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/theme"
	"fyne.io/fyne/v2/widget"
)

func appIcon() fyne.Resource {
	// 使用Fyne内置的登录图标
	return theme.LoginIcon()
}

func main() {
	// 强制使用软件渲染器
	os.Setenv("FYNE_RENDERER", "software")
	// 设置OpenGL版本
	os.Setenv("FYNE_GLVERSION", "2.1")
	// 输出调试信息
	os.Setenv("FYNE_DEBUG", "1")
	// 设置CGO_ENABLED=1即可解决问题
	a := app.New()
	// 设置应用图标
	a.SetIcon(appIcon())
	w := a.NewWindow("登录系统")

	// 创建用户名输入框
	username := widget.NewEntry()
	username.SetPlaceHolder("请输入用户名")

	// 创建密码输入框
	password := widget.NewPasswordEntry()
	password.SetPlaceHolder("请输入密码")

	// 创建登录按钮和表单布局的变量
	var loginBtn *widget.Button
	var form *fyne.Container

	// 创建登录按钮
	loginBtn = widget.NewButton("登录", func() {
		fmt.Println("用户名:", username.Text)
		fmt.Println("密码:", password.Text)
		// 这里可以添加验证逻辑
		if username.Text == "admin" && password.Text == "123456" {
			w.SetContent(widget.NewLabel("登录成功！欢迎 " + username.Text))
		} else {
			w.SetContent(container.NewVBox(
				widget.NewLabel("登录失败，用户名或密码错误！"),
				widget.NewButton("返回", func() {
					w.SetContent(form)
				}),
			))
		}
	})

	// 创建表单布局
	form = container.NewVBox(
		widget.NewLabel("用户登录"),
		container.NewVBox(widget.NewLabel("用户名"), username),
		container.NewVBox(widget.NewLabel("密码"), password),
		loginBtn,
	)

	// 设置窗口内容和大小
	w.SetContent(form)
	w.Resize(fyne.NewSize(300, 200))

	w.ShowAndRun()
}
